
unit uDataModule;

interface

uses
  SysUtils, Classes, Dialogs, cxStyles, cxClasses, cxGridTableView,
   ZConnection, XPMan, ZAbstractConnection, DB, ZAbstractRODataset,
  ZAbstractDataset, ZDataset, IniFiles, Forms, ZSequence, ZAbstractTable;

type
  TDataModule1 = class(TDataModule)
    dlgprintsetup1: TPrinterSetupDialog;
    cxStileRep1: TcxStyleRepository;
    cxStyleSheetTBVW1: TcxGridTableViewStyleSheet;
    cxStyleSheetTBVWGridTableViewStyleSheetDevExpress: TcxGridTableViewStyleSheet;
    cxstyl1: TcxStyle;
    cxstyl2: TcxStyle;
    cxstyl3: TcxStyle;
    cxstyl4: TcxStyle;
    cxstyl5: TcxStyle;
    cxstyl6: TcxStyle;
    cxstyl7: TcxStyle;
    cxstyl8: TcxStyle;
    cxstyl9: TcxStyle;
    cxstyl10: TcxStyle;
    cxstyl11: TcxStyle;
    cxstyl12: TcxStyle;
    cxstyl13: TcxStyle;
    cxstyl14: TcxStyle;
    Connection: TZConnection;
    xpmnfst1: TXPManifest;
    qryGeral: TZQuery;
    seqAuditoria: TZSequence;
    qryEventos: TZQuery;
    dsEventos: TDataSource;
    intgrfldEventoscod_auditoria: TIntegerField;
    intgrfldEventoscod_usuario: TIntegerField;
    wdstrngfldEventosevento: TWideStringField;
    wdstrngfldEventosdetalheevento: TWideStringField;
    dtmfldEventoshora: TDateTimeField;
    tblClientes: TZTable;
    tblClientescod_cliente: TIntegerField;
    tblClientesnome: TWideStringField;
    tblClientesendereco: TWideStringField;
    tblClientescidade: TWideStringField;
    tblClientesfonecel: TWideStringField;
    tblClientesfone: TWideStringField;
    tblClientesrg: TWideStringField;
    tblClientessexo: TWideStringField;
    tblClientesdatanascimento: TDateTimeField;
    tblClientesstatus: TWideStringField;
    tblClientesobservacoes: TMemoField;
    tblClientescpf: TWideStringField;
    dsContrato: TDataSource;
    dsClientes: TDataSource;
    tblParcelas: TZTable;
    intgrfldParcelascod_parcelacontrato: TIntegerField;
    intgrfldParcelascod_contrato: TIntegerField;
    dtmfldParcelasdata_emissao: TDateTimeField;
    dtmfldParcelasdata_vencimento: TDateTimeField;
    dtmfldParcelasdata_pagto: TDateTimeField;
    fltfldParcelasvalor_parcela: TFloatField;
    fltfldParcelasdesconto: TFloatField;
    mfldParcelasstatus: TMemoField;
    fltfldParcelasacrescimo: TFloatField;
    tblDependentes: TZTable;
    dsDependentes: TDataSource;
    dsParcelas: TDataSource;
    zqryContrato: TZQuery;
    intgrfldContratocod_contrato: TIntegerField;
    intgrfldContratocod_cliente: TIntegerField;
    dtmfldContratodata_assinatura: TDateTimeField;
    dtmfldContratodata_inicio: TDateTimeField;
    dtmfldContratodata_final: TDateTimeField;
    wdstrngfldContratonomeplano: TWideStringField;
    fltfldContratovalor_parcela_final: TFloatField;
    wdstrngfldContratostatus: TWideStringField;
    blnfldContratotem_falecido: TBooleanField;
    tblDependentes2: TZTable;
    tblDependentes2cod_dependente: TIntegerField;
    tblDependentes2cod_cliente: TIntegerField;
    tblDependentes2cpf: TWideStringField;
    tblDependentes2nome: TWideStringField;
    tblDependentes2sexo: TWideStringField;
    tblDependentes2datanascimento: TDateTimeField;
    tblDependentes2parentesco: TWideStringField;
    tblDependentes2status: TWideStringField;
    tblDependentes2observacao: TMemoField;
    tblDependentes2causa_falecimento: TWideStringField;
    tblDependentes2data_falecimento: TDateTimeField;
    dsDependentes2: TDataSource;
    dsClientes2: TDataSource;
    tblClientes2: TZTable;
    qryClienteContrato: TZQuery;
    wdstrngfldClienteContratonome: TWideStringField;
    intgrfldClienteContratocod_contrato: TIntegerField;
    dtmfldClienteContratodata_final: TDateTimeField;
    wdstrngfldClienteContratonomeplano: TWideStringField;
    dsClientesContrato: TDataSource;
    dsParcelasRecebimentos: TDataSource;
    tblParcelasRecebimentos: TZTable;
    qryClienteDespesas: TZQuery;
    intgrfldClienteDespesascod_parceladespesa: TIntegerField;
    intgrfldClienteDespesascod_contrato: TIntegerField;
    intgrfldClienteDespesascod_servico: TIntegerField;
    dtmfldClienteDespesasdata_emissao: TDateTimeField;
    dtmfldClienteDespesasdata_vencimento: TDateTimeField;
    dtmfldClienteDespesasdata_pagto: TDateTimeField;
    fltfldClienteDespesasvalor_parcela: TFloatField;
    wdstrngfldClienteDespesasstatus: TWideStringField;
    wdstrngfldClienteDespesastiposervico: TWideStringField;
    dsClienteDespesas: TDataSource;
    qryClientesParcelas: TZQuery;
    intgrfldParcelasRecebimentoscod_parcelacontrato: TIntegerField;
    intgrfldParcelasRecebimentoscod_contrato: TIntegerField;
    dtmfldParcelasRecebimentosdata_emissao: TDateTimeField;
    dtmfldParcelasRecebimentosdata_vencimento: TDateTimeField;
    dtmfldParcelasRecebimentosdata_pagto: TDateTimeField;
    fltfldParcelasRecebimentosvalor_parcela: TFloatField;
    fltfldParcelasRecebimentosdesconto: TFloatField;
    mfldParcelasRecebimentosstatus: TMemoField;
    fltfldParcelasRecebimentosacrescimo: TFloatField;
    qryClienteContratoEmAberto: TLargeintField;
    tblContratos: TZTable;
    intgrfldContratoscod_contrato: TIntegerField;
    intgrfldContratoscod_cliente: TIntegerField;
    intgrfldContratoscod_plano: TIntegerField;
    wdstrngfldContratosnome_responsavel: TWideStringField;
    wdstrngfldContratoscpf_contratante: TWideStringField;
    dtmfldContratosdata_assinatura: TDateTimeField;
    dtmfldContratosdata_emissao: TDateTimeField;
    dtmfldContratosdata_inicio: TDateTimeField;
    dtmfldContratosdata_final: TDateTimeField;
    dtmfldContratosdata_cancelamento: TDateTimeField;
    wdstrngfldContratosmotivo_cancelmento: TWideStringField;
    intgrfldContratosdia_cobranca: TIntegerField;
    fltfldContratosdesconto: TFloatField;
    fltfldContratosvalor_total: TFloatField;
    fltfldContratosvalor_parcela: TFloatField;
    fltfldContratosvalor_total_final: TFloatField;
    fltfldContratosvalor_parcela_final: TFloatField;
    fltfldContratosvalor_acrescentado: TFloatField;
    intgrfldContratosqtd_dependentes: TIntegerField;
    intgrfldContratosqtd_parcelas: TIntegerField;
    wdstrngfldContratosstatus: TWideStringField;
    blnfldContratostem_falecido: TBooleanField;
    intgrfldContratosqtd_idosos: TIntegerField;
    dsContratos: TDataSource;
    dsPlanos: TDataSource;
    tblPlanos: TZTable;
    intgrfldPlanoscod_plano: TIntegerField;
    wdstrngfldPlanosnomeplano: TWideStringField;
    fltfldPlanosvalor_mensal: TFloatField;
    intgrfldPlanosqtd_dependente: TIntegerField;
    fltfldPlanosacr_dependente: TFloatField;
    fltfldPlanosacr_idade: TFloatField;
    intgrfldPlanosduracao: TIntegerField;
    intgrfldPlanoscarencia: TIntegerField;
    fltfldPlanosvalor_total: TFloatField;
    wdstrngfldClientesbairro: TWideStringField;
    tblDespesas: TZTable;
    dsDespesas: TDataSource;
    intgrfldZTable1cod_parceladespesa: TIntegerField;
    intgrfldZTable1cod_contrato: TIntegerField;
    intgrfldZTable1cod_servico: TIntegerField;
    dtmfldZTable1data_emissao: TDateTimeField;
    dtmfldZTable1data_vencimento: TDateTimeField;
    dtmfldZTable1data_pagto: TDateTimeField;
    fltfldZTable1valor_parcela: TFloatField;
    wdstrngfldZTable1status: TWideStringField;
    procedure DataModuleCreate(Sender: TObject);
  private
    FCurrentUser: Integer;
    FCurrentUserName: string;
    procedure SetCurrentUser(const Value: Integer);
    procedure SetCurrentUserName(const Value: string);

    { Private declarations }
  public
    { Public declarations }
    property CurrentUser: Integer read FCurrentUser write SetCurrentUser;
    property CurrentUserName: string read FCurrentUserName write SetCurrentUserName;
    procedure RegisterEvent(evento, detalheevento: string);
    procedure Opendatasets;
  end;

var
  DataModule1: TDataModule1;

implementation

{$R *.dfm}

procedure TDataModule1.DataModuleCreate(Sender: TObject);
var
  ArqIni: TIniFile;
begin
  ArqIni := TIniFile.Create(ExtractFilePath(Application.ExeName) + 'ConfigBD.ini');
  Connection.HostName := ArqIni.ReadString('DADOSBD', 'HOSTNAME', '');
  Connection.Port := StrToInt(ArqIni.ReadString('DADOSBD', 'PORT', ''));
  Connection.Database := ArqIni.ReadString('DADOSBD', 'DATABASE', '');
  Connection.User := ArqIni.ReadString('DADOSBD', 'USER', '');
  Connection.Password := ArqIni.ReadString('DADOSBD', 'PASSWORD', '');
  Connection.Connect;
//  Opendatasets;
  tblClientes.Open;
  tblDependentes.Open;
end;

procedure TDataModule1.Opendatasets;


begin
tblClientes2.Open;
  tblDependentes2.Open;
  tblParcelas.Open;
  qryeventos.Open;
  zqryContrato.Open;
  tblParcelasRecebimentos.Open;
  qryClienteContrato.Open;
  qryClienteDespesas.Open;
end;

procedure TDataModule1.RegisterEvent(evento, detalheevento: string);
const
  strinsertevent = 'INSERT INTO auditoria( '+
                   'cod_auditoria, cod_usuario, evento, detalheevento, hora) '+
                   'VALUES (%d, %d, ''%s'', ''%s'', LOCALTIMESTAMP) ';
  streventos = 'select * from auditoria where cod_usuario = %d order by  hora desc  limit(30)';

begin
  qryGeral.SQL.Text:= Format(strinsertevent,[seqauditoria.GetNextValue,FCurrentUser,evento,detalheevento]);
  qryGeral.ExecSQL;
  qryEventos.Close;
  qryEventos.SQL.Text:= Format(streventos,[FCurrentUser]);
  qryEventos.Open;
end;



procedure TDataModule1.SetCurrentUser(const Value: Integer);
begin
  FCurrentUser := Value;
end;

procedure TDataModule1.SetCurrentUserName(const Value: string);
begin
  FCurrentUserName := Value;
end;

end.
